iT邦幫忙

2026 iThome 鐵人賽

DAY 21
0
Security

從 CSSLP 視角建構恰到好處的軟體安全系列 第 21

Day 20 | 主動引爆未知缺陷:以濫用案例反向設計

  • 分享至 

  • xImage
  •  

Introduction

在傳統的功能性軟體品保測試(Functional QA Testing)中,團隊絕大部分的心力都花在「正向測試(Positive Testing)」——輸入規格書定義的標準資料,求神拜佛保佑它流程能跑通、功能會動、可以準時上線。

但在軟體資安測試(Security Testing)的領域裡,核心視角完全反轉:想盡各種辦法把系統搞殘的負向測試 (Negative testing)。

Discussion

如果把開發軟體比喻成「經營一家外送餐廳」:

  • 正向測試:確認餐點好不好吃、有沒有照菜單出菜、鹹淡是否適中、賣相有沒有異味。
  • 負向測試:這份餐點在 38 度大熱天悶在外送箱 1 小時會不會加速腐壞產生毒素?路途顛簸狂甩會不會醬汁污染其他餐點?

資安測試的本質,不是驗證系統「做了什麼該做的事」,而是證明系統「在面對惡劣環境或惡意攻擊時,絕對不會做出不該做的事」。

Takeaways

濫用案例 (Abuse Cases)

攻擊者能否在 1 毫秒內同時送出 5 次相同折價券請求?
攻擊者能否將折價券折扣金額修改為超過訂單總額,導致結帳金額為負?
攻擊者能否套用其他租戶專屬的企業折扣碼?

驗證 (Verification) 與 確認 (Validation) V&V

概念 The Core Question Focus Output
驗證 (Verification) 我們有沒有把產品「做對」? 拿目前做出來的東西,去跟規格書與需求清單 (specifications and requirements) 進行比對檢查。 確保寫出來的程式碼與架構,完全符合當初設計文件與 SRTM 的規定。
確認 (Validation) 我們有沒有做出一套「對的產品」? 拿做出來的最終成品,放到真實世界中,去檢驗它是否能滿足使用者真正的需求與期望 (user's actual needs) 確保這套軟體在現實環境中,真的能解決客戶的商業痛點與資安問題。

獨立驗證與確認 (IV&V: Independent Verification and Validation)

驗證 (Verification) 與確認 (Validation) 的安檢工作,必須交由一個「與原本開發團隊完全獨立、毫無瓜葛的第三方」來負責執行。

Further Reading

OWASP Abuse Case Cheat Sheet (Historical)
https://cheatsheetseries.owasp.org/cheatsheets/Abuse_Case_Cheat_Sheet.html

OWASP Top 10 for Business Logic Abuse
https://owasp.org/projects/top-10-for-business-logic-abuse


上一篇
Day 19 | 擬定資安測試藍圖:從食品安全抽查談測試策略與計畫落地
下一篇
Day 21 | 從物料清單到紅隊演練:以餐飲品管解釋各種資安檢測項目
系列文
從 CSSLP 視角建構恰到好處的軟體安全22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言